উদাহরণ সহ RestTemplate কনফিগারেশন

Java Technologies - স্প্রিং বুট ক্লায়েন্ট (Spring Boot Client) - RestTemplate এর কনফিগারেশন
125

RestTemplate হলো Spring Framework-এর একটি ক্লাস, যা HTTP API-এর মাধ্যমে সার্ভারের সাথে ডেটা আদান-প্রদান করার জন্য ব্যবহৃত হয়। এটি GET, POST, PUT, DELETE ইত্যাদি HTTP মেথড সাপোর্ট করে।


RestTemplate কনফিগারেশন উদাহরণ

১. RestTemplate Bean কনফিগার করা

আপনার স্প্রিং বুট অ্যাপ্লিকেশনে একটি @Configuration ক্লাস তৈরি করুন এবং সেখানে RestTemplate এর জন্য একটি @Bean ডিফাইন করুন:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

২. RestTemplate ব্যবহার করে HTTP কল করা

আপনার কন্ট্রোলার বা সার্ভিস ক্লাসে RestTemplate ব্যবহার করতে পারেন:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class ApiController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/consume-api")
    public String consumeApi() {
        String url = "https://jsonplaceholder.typicode.com/posts/1";
        return restTemplate.getForObject(url, String.class);
    }
}

উদাহরণ: RestTemplate দিয়ে GET, POST, PUT, DELETE অপারেশন

১. GET রিকুয়েস্ট

@GetMapping("/get-example")
public String getExample() {
    String url = "https://jsonplaceholder.typicode.com/posts/1";
    return restTemplate.getForObject(url, String.class);
}

২. POST রিকুয়েস্ট

@PostMapping("/post-example")
public String postExample() {
    String url = "https://jsonplaceholder.typicode.com/posts";
    Post post = new Post(1, "My Title", "This is a sample body.");
    return restTemplate.postForObject(url, post, String.class);
}

class Post {
    private int userId;
    private String title;
    private String body;

    // Constructor, getters, and setters

    public Post(int userId, String title, String body) {
        this.userId = userId;
        this.title = title;
        this.body = body;
    }
}

৩. PUT রিকুয়েস্ট

@PutMapping("/put-example")
public void putExample() {
    String url = "https://jsonplaceholder.typicode.com/posts/1";
    Post updatedPost = new Post(1, "Updated Title", "This is an updated body.");
    restTemplate.put(url, updatedPost);
}

৪. DELETE রিকুয়েস্ট

@DeleteMapping("/delete-example")
public void deleteExample() {
    String url = "https://jsonplaceholder.typicode.com/posts/1";
    restTemplate.delete(url);
}

RestTemplate-এর অ্যাডভান্সড কনফিগারেশন

১. টাইমআউট এবং কাস্টম কনফিগারেশন

কাস্টম HTTP ক্লায়েন্ট দিয়ে RestTemplate কনফিগার করতে পারেন:

import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.HttpClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

@Configuration
public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() {
        RequestConfig requestConfig = RequestConfig.custom()
                .setConnectTimeout(5000) // 5 seconds
                .setSocketTimeout(5000)  // 5 seconds
                .build();

        CloseableHttpClient httpClient = HttpClients.custom()
                .setDefaultRequestConfig(requestConfig)
                .build();

        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);

        return new RestTemplate(factory);
    }
}

৩. RestTemplate তে হেডার যোগ করা

আপনার HTTP রিকুয়েস্টে হেডার যোগ করতে চাইলে HttpHeaders এবং HttpEntity ব্যবহার করুন:

import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;

@GetMapping("/header-example")
public String headerExample() {
    String url = "https://jsonplaceholder.typicode.com/posts/1";

    HttpHeaders headers = new HttpHeaders();
    headers.set("Authorization", "Bearer your-token");

    HttpEntity<String> entity = new HttpEntity<>(headers);

    ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class);

    return response.getBody();
}

উপসংহার

উপরে দেওয়া কনফিগারেশন এবং উদাহরণগুলোর মাধ্যমে আপনি RestTemplate ব্যবহার করে যেকোনো HTTP API কল সহজে পরিচালনা করতে পারবেন। এটি মাইক্রোসার্ভিস বা এক্সটার্নাল API-এর সাথে ইন্টিগ্রেশন করতে বেশ কার্যকর।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...